#ifndef TOOL_H_
#define TOOL_H_
#include "Mouse.h"
#include "Object.h"
#include "Vertex.h"
#include "ObjectList.h"
#include "MaterialList.h"
#include "TextureManager.h"

class Tool
{
	TextureManager * textureManager;
	int currentToolId;
	int * currentMode;
	int * numModes;
	Mouse * mouse;
	Vertex * dragVertex;
	VertexList * dragGroup;
	Object * object;
	MaterialList * materialList;
	List<Material> * currentMaterialNode;
	Vector2D texRotationPosition;
	
	public:
	Tool(TextureManager * textureManager, Mouse * mouse, MaterialList * materialList);
	~Tool();
	void SetCurrentToolId(int toolId);
	int GetCurrentToolId();
	void LiftPrimaryFunction();
	void PrimaryFunction(ObjectList * objectList);
	void SecondaryFunction();
	void Think(double elapsedTime);
	bool HasSelectedObject();
	void CheckSelectedObjectHover();
	void NextTool();
	void LastTool();
	void NextMode();
	void LastMode();
	void NextParameter();
	void LastParameter();
	char * GetParameterName();
	char * GetModeName();
};
#endif /*TOOL_H_*/
